package day08;

/**
 * @author yt1105
 * @version 1.0
 */
public class Enum01 {
    public static void main(String[] args) {
        System.out.println(Seasons.spring);//这样就可以直接去获取了
    }
}

class Seasons{
    private String name;
    private String desc;
      ///这样一写的话 就可以使我们的这个数据变得不可以被外部修改了
    private Seasons(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }
    public static final Seasons spring=new Seasons("春天","温暖");//我们在内部去使用，不会被修改 优化一下可以加入final修饰符
    //以此类推的书写下去  实现自定义枚举类的操作处理 枚举类型的名字使用大写  不要提供get/set方法 因为枚举对象通常只是可读的
    //1.构造器私有化 2.本类内部创建一组对象 3.对外暴漏对象 4.可以提供get方法，但是不要提供set
}
enum Seasons02{

    //1.使用关键字
    //如果使用了enum这个之后，我们可以替代上述那句话。
    //如何操作 其实这些属性是和我们写的一样 就是简化成为了 public static final了其实是
    SPRING("春天","温暖的"),//我们简化了
    SUMMMER("夏天","炎热的"),
    AUTUMN("秋天","凉爽"),
    WINTER("冬天","寒冷");
    //当我们的数据是无参也可以什么都不行
    //枚举对象 必须放在这个类的最前面才行 其他位置不可以的
    //如果你在一个类里面什么都没写的话 我们什么构造器都没写的话就会默认无参构造器的出现！！！ 如果写了其他类型的构造器，我们就
    //就是如果中间有多个枚举类的话，我们中间使用逗号隔开
    //如果使用enum来实现枚举的话，我们就要要求定义常量对象，写在前面才行。
    private String name;
    private String desc;
    private Seasons02(String name,String desc){
        this.name=name;
        this.desc=desc;
    }

    private Seasons02() {
    }
    //enum注意事项 其实我们会默认的继承Enum这个类的 我们使用Javap来验证 我们是简化了，但其实是系统帮助我们书写了这个方法其实是
    //传统的public static final Season2 SPRING =new Season2();//简化成；SPRING("春天","温暖的")
    //放图片

}
